package com.jl.service;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jl.commons.result.PageDataInfo;
import com.jl.commons.shiro.ShiroUser;
import com.jl.model.FaultInfo;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 故障信息表 服务类
 * </p>
 *
 * @author JiangJian
 * @since 2019-03-06
 */
public interface IFaultInfoService extends IService<FaultInfo> {

    /**
     * 分页查询故障信息数据
     * @param pageDataInfo 分页配置信息
     * @param qw 筛选条件
     * @return
     */
    void selectFaultInfoDataGrid(PageDataInfo<Map<String,Object>> pageDataInfo, QueryWrapper<FaultInfo> qw);

    /**
     * 新增故障信息
     * @param currUser 当前用户
     * @param faultInfo 故障信息
     * @param tipsComponent 提示配件
     * @return
     */
    boolean saveFaultInfo(ShiroUser currUser, FaultInfo faultInfo, List<String> tipsComponent);

    /**
     * 根据关键词查询所有设备故障信息
     * @param pageDataInfo
     * @param keyWordId
     */
    void selectFaultInfoDataGridByKeyWordId(PageDataInfo<Map<String,Object>> pageDataInfo, Long keyWordId);

    /**
     * 查询某条生产线上的所有故障信息
     * @param pageDataInfo 分页参数
     * @param lineId 生产线id
     */
    void getFaultInfoByLineId(PageDataInfo<Map<String,Object>> pageDataInfo, Long lineId);
    /**
     * 根据关键词查询 某台设备的故障信息
     * @param pageDataInfo
     * @param keyWord
     * @param deviceId
     * @return
     */
    void selectDeviceFaultWithKeyWord(PageDataInfo<Map<String,Object>> pageDataInfo, Long keyWord,Long deviceId);
    /**
     * 新增故障的采纳数
     * @param id 故障id
     * @return 结果
     */
    boolean addFaultInfoAcceptNum(Long id);

    /******************************以下  统计********************************************/

    /**
     * 首页 获取重复出现的故障现象
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 重复故障现象列表（按设备）
     */
    void getRepeatFaultSymptom(PageDataInfo<Map<String,Object>> pageDataInfo,String startTime,String endTime);

}
